Для ботов можно имитировать покупку предметов - отнимать деньги и давать предмет. Но это очень простой алгоритм для тупеньких ботов что будут сливаться по КД. Если хочешь слепить нечто, хотя бы изображающее сопротивление - простой покупки предметов никак не хватит. Нужно учитывать как можно больше игровых ситуаций и написать (триггерами) план действий в таких условиях. И тестить, тестить, тестить.
Ты же понимаешь что под это описание подходит почти каждая ORPG прошлого? Как вариант могу предложить SOLs rpg, Помню ещё одну там ещё лошадей покупать можно было и там и правда город посередине но тоже забыл название. Описывай более особенные вещи или ищи сам вот тут www.epicwar.com/maps/search/?n=orpg&go=1
Пушистый, я пытаюсь локальной переменной присвоить значение глобальной переменной типа Способность и пишет: Cannot convert integer to ability
local ability s
set udg_BuferAbility=GetSpellAbilityId()
set s=udg_BuferAbility
Не могу найти в списке функций GetConstructingUnit или что нибудь такое.
ApaxHoqpuJL, как не можешь. там в гуи есть такие только без Get. эта переменная на jass.
ApaxHoqpuJL, еще можно запретить строить на начальном этапе - проверить приказ стройки. проверяешь какое здание строит. id приказ => id здание.
во время события приказа в точку можно отдать приказ стоп, однако, "stop" не может сбить приказ в точку (даже стоп не помогает, не знаю почему. юнит просто бежит выполнять приказ в точку. замечал два раза такое).
Он просто не сбивает. Решение находил такое: я отдавал приказ двигаться в тек позицию юнита, и юнит останавливался и не бежал туда. Единственное, что замечано - что статические повороты делает, хотя не так существенно.
WAGARAX, способности не сбивающие текущий приказ, их штук 7 на весь варкравт, все эти абилки без указания цели. Виндвалк, берсерк, божественный щит, иммолейшин, щит маны и все прочие щиты на вкл\выкл.
Да там есть спец. эф в заклинаниях "похитить" называется.
Должна сфера появится, типа душа.
В карте, что я прикреплял сюда она есть, и как-то тоби сделал, что их создавалось не по 20 штук, а только одна.
Ну и не только атака должна отниматься, но у хп реген.
Ну а так-то пример хороший, и понятно что делать, в том случае, если захочу делать больше уровней для способности.
Где стоит условие (убийца) имеет баф, можно поставить уровень убийцы больше или равно 1, если у нас пасива.
Что получается, если мы убиваем первого героя имея способность, получаем способность и уровень становится 1, последующие убийства увеличивают уровень, через условие не даем повышать ненужные уровни, убивают нас, способности теряем.
Так же можно добавить эффекты, через дамми или же что нить ещё, и когда нас убивают наносим урон всем через способность "взрыв", который так же повышается уровнями (душами) как и остальные. Взрыв можно сделать как через дамми, так и дать закрытую способность самому герою и активировать взрыв при смерти.
Не каких фиксаций, гемора и утечек. Болванка прилагается.
Автору совет, или же урок: Смотри как делают другие, и ломай голову как это можно сделать по своему уникально, возможно проще и оптимальнее.
Группы юнитов + хэш или структуры. При касте спелла берешь кастера, берешь его ID, проверяешь не записана ли группа в какой-либо из ячеек. Если нет - создаешь группу и записываешь её в ячейку. При смерти юнита делаешь проверку не записана ли по его ID группа юнитов - если записана - удаляешь его и проверяешь количество юнитов в группе и если оно равно 0 - удаляешь группу. Естественно хэш тоже чистишь всюду где нужно.
Это звучит как "Сделайте мне пожалуйста систему формаций". Чтобы научить тебя как это сделать придётся потратить несколько десятков часов. И тут 2 варианта: либо ты будешь читать статьи и выучишь всё сам, либо обращайся к отдельным пользователям и проси о приватных, платных, уроках в частном порядке.
Вопрос вообще ни о чём. То, о чём ты спрашиваешь делается за 20-30 минут + несколько часов на всякие плюшки и дебаг (в худшем случае).
Я понял, что процесс сделан как и "MPQEditor", но всё равно не доганяю. Объясните или киньте ссылку с объяснением, так как я не нашёл инфы на это.
тебе объяснили
прога редактирует файл
Я например не знаю как это делать.
статьи по с++/java/любойдругойяп ждут тебя
У меня такое впечатление складывается что ты со мной как с нубом разговариваешь.
тебе показалось (за исключением этого коммента)
Ок. Но лучше ответ бы, чем отправлять меня в тёмный лес. =(
это и есть ответ
если тебе надо
Напиши мне раз умный. Я например не знаю как это делать. И потом дай мне и инструкцию напиши к ней. =\
то ты ошибся адресом
это Q/A а не сделай всё за меня
тебе объяснили что надо редактировать и чем
что ещё тебе надо объяснить?
как печатать на клаве или как сохранять отредактированный файл? BaHeK:
war3map.imp - бинарный файл и редактируют его не блокнотом, НЕХ-редактором. Ну и к тому-же там особая структура файла.
блокнот прекрасно справляется
короче ответ на вопрос дан (только злые люди прогу для автора не написали)
поэтому клоз
и контрольный в голову статья про сабж
Proshel_Doty, иди учи тер вер
если тебя не устраивает то как работает здравый смысл то убей себя
если тебе повезёт то ты переродишься в мире который тебя устраивает
если хочешь чтобы срабатывала каждые 5 раз то это не случайность а тупо счётчик
Чтобы отследить созданного клона делается глобальный триггер с событием - Юнит вызывает еще 1 юнита, условие - юнит иллюзия, действие записать в bj_LastCreatedUnit == GetSummonedUnit(), после приказываем даммику кастануть жезл иллюзий в цель, сразу после приказа - берем bj_lastCreatedUnit - это наша иллюзия, записываем её в локалку или если действия мгновенные и не вызывают других триггеров юзающих эту глобалку то делаем с клоном все что нужно...
Т.к фрог юзает триггеры, он делает так, создает триггер, к нему вешает действие где в глобалку записывают GetSummonedUnit(), ну а после удаляет это действие у триггера, берет клона из глобалки, добавлает этому же триггеру другое действие и ставит событие на переодик 0.02 сек, чтобы двигать дамми снаряд, кароч юзает 1 триггер и для поиска клона и для движения дамми и для всего остального.
LongbowMan, могу предложить лишь попробовать пересвязать вершины с костью либо создать несколько костей и попривязывать часть вершин к одной, часть к другой, часть к третьей и т. д. Если не поможет, удали сбояющую аниму и создай заново.
Хотя и это может не помочь, ибо модель действительно очень тяжелая.
Это код аттачмента в модели.
Добавлять надо свой через war3modeleditor, и там указывать нужные пути и видимость (т.е. в каком диапазоне кадров этот аттач видно)
Вот охотничий зал, аттач BirthLink
Видимость у него включается (1) в кадре 3333, когда начинается анимация birth, и выключается (0) в кадре 63333 где она заканчивается
Прикреплю торренты для нормального WC3. Также скачай JNPG:R с XGM, обнови pjass.exe и TESH.
Решение твое проблемы:
Ты делаешь кратер в точке X шириной Y и глубиной Z. Чтобы после его убрать, нужно сделать кратер в точке Х шириной Y и глубиной -Z.
Сначала попробуй перенести все триги в другую карту, если в другой мапе все работает - проблема не в тригах, если всеже в тригах - удаляй по очереди, категориями, выясняй из-за каких не работает. Это проблема частного триггера\переменной. Чаще всего так.
ПЫСЫ не забывай бэкапить карту
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
Сначала попробуй перенести все триги в другую карту, если в другой мапе все работает - проблема не в тригах, если всеже в тригах - удаляй по очереди, категориями, выясняй из-за каких не работает. Это проблема частного триггера\переменной. Чаще всего так.
ПЫСЫ не забывай бэкапить карту
unsinkable78, один из вариантов это большое количество однотипных триггеров с периодом
объедении их в 1
а лучше используй таймер вместо триггеров unsinkable78, так же вероятно проблема в твоих массивах
ты судя по всему задаёшь им размер в 1000
из за чего при запуске игры твой массив заполняется ненужными значениями что забивает память и может приводить к лимиту потока (в вар3 у потока/триггера есть максимальное количество операций которые он может выполнить)
вот пример из твоего j файла
set i = 0
loop
exitwhen (i > 1000)
set udg_squad[i] = CreateGroup()
set i = i + 1
endloop
этот код циклом от 0 до 1000 создаёт группы(1000 групп соответственно) и заносит их в массив squad
это тратит более 1000 операций
и таких моментов много
так же я видел места где ты использовал массивы вместо обычных переменных что тоже увеличивает затраты ресурсов и может приводить к лимиту потока
массивы нужно использовать лишь там где без них не обойтись
Возможно что в каком то триггере не объявил глобальную переменную. Т.е. group g, когда правильно будет group g=null or group g=CreateGroup() если же real or integer то =0
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
когда игроки подгрузили данные из прелоада и синхронизировали их то устанавливаем им флаг загрузил
а потом просто сохраняем всё что надо у тех у кого нету флага
подробнее в статье про прелоад
данные надо синхронить со всеми иначе десинк
как-то делается, но тонкостей дохера - нельзя иметь регионы на карте, чтобы это работало, нельзя иметь события на unitInRange, и тд. и тп. Проще говоря - обломись, дешевле сделать статичный магаз где-то в неиспользуемой зоне
здесь можно разделить нужные задачи на 2 категории:
работа с игровыми объектами (юниты, разрушаемые объекты, таймеры и т.д)
работа с визуальным отображением (положение камеры, интерфейс, и т.д)
В первом случае если не синхронизировать данные - то будет десинхрон
А во втором случае можно как угодно шаманить с GetLocalPlayer()
Если надо каждому игроку вывести координаты его мышки:
call BJDebugMsg(R2S(GetMouseX())+" - "+R2S(GetMouseY()))
//У каждого игрока на экране будут свои координаты мышки
Если надо определенному игроку вывести координаты его мышки:
if( GetLocalPlayer() == p ) then
call BJDebugMsg(R2S(GetMouseX())+" - "+R2S(GetMouseY()))
endif
//У игрока "p" на экране будут выведены координаты его мышки
Если надо определенному игроку создать спецэффект:
local string s = ""
if( GetLocalPlayer() == p ) then
set s = "effect.mdx"
endif
call AddSpecialEffect(s, x, y)
//Игроку "p" будет создан спецэффект в координатах x,y (спецэффект не будет виден другим игрокам)
А вот если нужно будет создать юнита в координатах мышки игрока:
call SyncReal(p, GetMouseX(), GetMouseY())
call CreateUnit(p, 'hfoo', sync_x, sync_y, 270.)
//Игроку "p" будет создан пехотинец в координатах его мышки
//Функцию SyncReal смотри в статье GetLocalPlayer(), но надо будет чуть её дополнить, чтобы она писала синхронизированные значение в глобалки sync_x, sync_y
//Ну и как говорилось выше - для синхронизации требуется время
Порождать утечку может только объект, чей тип наследует тип handle.
Такие типы как:
boolean
integer
real
string
являются базовыми и утечек не порождают. Все остальные типы (unit, group, timer, multiboard и т.д.) являются наследниками типа handle и могут вызывать утечки.
Подробнее тут:
Исключением из правил является тип player. Так как игроки существуют на протяжении всей игры, так как они не уничтожаются и не удаляются, являются постоянным объектом существующим на протяжении всей игры, утечек они не порождают.
Переменная "точка" это не просто два числа.
Она хранит объект - ссылку на место в памяти, где хранятся эти два числа.
Пока ты не вызовешь RemoveLocation, эта точка будет висеть в памяти.
Когда ты присваиваешь переменной новое значение, старый объект не удален, но появляется новый объект с другими координатами, и твой триггер создает 200 точек в секунду.
Чтобы поменять координаты не создавая новый объект, есть функция MoveLocation
Порождать утечку может только объект, чей тип наследует тип handle.
Такие типы как:
boolean
integer
real
string
являются базовыми и утечек не порождают. Все остальные типы (unit, group, timer, multiboard и т.д.) являются наследниками типа handle и могут вызывать утечки.
Подробнее тут:
Исключением из правил является тип player. Так как игроки существуют на протяжении всей игры, так как они не уничтожаются и не удаляются, являются постоянным объектом существующим на протяжении всей игры, утечек они не порождают.
Переменная "точка" это не просто два числа.
Она хранит объект - ссылку на место в памяти, где хранятся эти два числа.
Пока ты не вызовешь RemoveLocation, эта точка будет висеть в памяти.
Когда ты присваиваешь переменной новое значение, старый объект не удален, но появляется новый объект с другими координатами, и твой триггер создает 200 точек в секунду.
Чтобы поменять координаты не создавая новый объект, есть функция MoveLocation
Так ты не объяснил , почему Иллидан быстро превращается , хотя стоит задержка "0" , а у моих то же "0" .
Вот ошибка скрин , там нужно 0 поставить . . .
Мб оно связано с морфом, или с какими то параметрами заклинания - в доте аватар превращал тинкера в танк..
Можно попробовать морфнутся в альтернативного тинкера скиллом 'Aave' - превратится в сфинкса, тогда он навсегда останется тинкером в ульте.
У зданий физ размер нужен только для галочки и взаимодействия со спеллами, сама проходимость определяется картой путей здания, если поставить карту путей портала то сквозь здание можно будет ходить но на этом месте нельзя будет строить...
PT153, это лимит для одного игрока, то есть героя смогут нанять другие.
Нужно поставить таверне способность Продажа войск. Потом делаешь триггер:
Событие: Юнит вошёл в область (Вся игровая карта)
Условие: Триггеринг юнит равно Герой равно Да (можно этого не делать, просто исключает срабатывание триггера для каждого юнита)
Действия: несколько действий Если/То/Иначе
Если - Юнит тип (Триггеринг юнит) равно Какой-то Герой Из Таверны
То - Нейтральное здание - Удалить Какой-то Герой Из Таверны из таверны
Иначе - Ничего
И так для каждого типа героев в таверне.
Farrien, для начала бж красные Farrien, и почитай статьи
а то твой код ужасен
и не цитируй весь комментарий если отвечаешь лишь на его часть
а то сложно понять на что именно ты отвечаешь
чтобы цитировать часть комментария выдели текст который надо цитировать и нажми кнопку цитировать
vlad2010pilot, как изменить текст Предметы я уже написал.
А то что ты хочешь изменить (Меню паузы или Таблица рекордов) лежит:
Граница - UI\Widgets\EscMenu\Human\editbox-border.blp
Кнопка развертывания - UI\Widgets\Glues\Gluescreen-Scrollbar-DownArrow.blp
Кнопка сворачивания - UI\Widgets\Glues\Gluescreen-Scrollbar-UpArrow.blp
Фон - UI\Widgets\EscMenu\Human\editbox-background.blp
Работает только оригинал , точнее с него настройки на все остальные идут клоны спелла, настройки смотри в опен доте, так то она работ, но вот орб и ннсовместтмость с другими пассивками, это не очень.
Оба файла удаляются, потому что ты импортируешь их в карту через программу и не добавляешь данные о файлах в файл импорта(war3map.imp). При сохранении карты в редакторе архив пересобирается, и в него добавляются сторонние файлы, которые сохранены в том самом файле импорта. Поэтому используй стандартный менеджер импорта в редакторе.
Я тебе вот что скажу... Играю в Варик с 2006 года.
Короче ща перешёл в Гарену из-за того, что батл нете нельзя нормально хостить карту (там одни боты).
В общем: народу в гарене полно(комнаты почти всегда забыты по максимому). И что странно - половина из игроков - школьники... Откуда столько много школьников мне не понятно.
Но одно могу сказать точно - в Варик 3 играет больше народу, чем в Старкрафт 2. И будут играть ещё долго.
А я думал, что к 2010 году в варике 3 ТОЧНО никого не останется... Оказывается я жестко ошибался)
vipsasTRATEGic, посмотри путь к тестурам через MPQ браузер,который находится в Model Editore.Раньше у меня такая же проблема была,но нашёл этот способ.Временами, правда , надоедает постоянно в Model Editor лезть, но зато эффективно.
Или можешь пыаться в пути написать Textures . Это самый частоиспользуемый путь для текстур
У тебя не те пути указаны для импорта. Стоят пустые пути, а надо UI\Glues\MainMenu\MainMenu3d_exp\ перед именем файла поставить. Странно, что у тебя нормально открывалось. Наверное, ты у себя в нужном месте на ПК эти *.blp держал.
P. S. Дракон ничего так)
P. P. S. Очень долго решался этот вопрос, почти неделю. Сама судьба привела меня к нему) Хотел первому комментатору плюсов отсыпать за то, что незаслуженно ему на минус ткнул, и попался этот вопрос.
первый и второй скрины - ты создаешь юнита "Выбирайте героя" для каждого игрока, потом накидываешь игроку-владельцу выборку. Так понял? ДА ВСЕ ПРАВИЛЬНО
третий и четвертый скрины - это один триггер? ДА
при создании (входе в игровую карту) юнита ты показываешь диалог одному игроку (при входе в эту область) я показываю диалог этому игроку!!!!
пятый скрин - здесь при нажатий диалоговой кнопки ты что-то делаешь. Скорее всего проблема в пике. ДА проблема в пике
дебаг тут не нужен...я и так понимаю где он останавливается а где идет дальше..я хочу узнать как создать этого выбирайте героя, выбрать этого выбирайте героя в этой области где я его создал добавить выбирайте героя в селекции для этого игрока и чтобы эти 2 триггера правильно работали avuremybe:
я не пойму откуда все эти куски кода
куски...объясняю....первые 2 это идет создание выбирайте героя для всех игроков... 3 4 это один триггер и 5 это отдельный триггер
вот так выглядит он
и вот так для всех остальных игроков
а так выглядит 2 триггер
Хотя не понятно. Где фильтр? Ты хотя бы условием отсеивал, или проверял бы. Сделал бы так, что на каждого пикнутого юнита накидывать на него выбор владельца. где дебаг?
и вот как это сделать...покажи условием
решил вопрос....проблема была в том что я выбирал только что созданного юнита...за счет этого на первые 2 показано что last created unit = выбирайте героя...он думал что только что созданный юнит не герой а выбирайте героя..потому и переключался выбор
теперь в выборе уровня сложности стоит условие
Я тебе вот что скажу... Играю в Варик с 2006 года.
Короче ща перешёл в Гарену из-за того, что батл нете нельзя нормально хостить карту (там одни боты).
В общем: народу в гарене полно(комнаты почти всегда забыты по максимому). И что странно - половина из игроков - школьники... Откуда столько много школьников мне не понятно.
Но одно могу сказать точно - в Варик 3 играет больше народу, чем в Старкрафт 2. И будут играть ещё долго.
А я думал, что к 2010 году в варике 3 ТОЧНО никого не останется... Оказывается я жестко ошибался)
Tand, под кодировкой я имею в виду кодировку. Есть такая штука, определяет какими комбинациями нулей и едениц в бинарном виде кодируется каждый символ. Если при сохранении использована не та кодировка, которую понимает игра, то игра, соответственно, неможет сопоставить нулям и еденицам из файла конкретные символы, а значит ничего не показывает или показывает совсем не то, что было написано изначально.
Скачай Notepad++ -встроенные в винду средства годятся разве что заметки о жизни офисного планктона писать.
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
Анимация кости базы при death сместилась у конечной точки в линейке анимации. Поправил. В игре потестил, работает. Рассчитать границы нужны когда делаешь новые или изменяешь старые анимации, одна из причин чтоб анимация не сместилась и была на своем месте. Но в твоем случае она сразу не помогла.
Скорее всего кривые руки, проверьте как следует пути к моделям.
микс архив - тоже самое что файлы в карте, если все правильно сделано, неважно конверт из вов это или нет.
у каждого формата свой алгоритм,вот из за этого такая разница ,особенно на вес блп влияет прозрачность что лутше прозрачные места которые не затрагивает меш красить чёрным цветом
» WarCraft 3 / Из моба в героя
» WarCraft 3 / Тип переменной
» WarCraft 3 / Приказ
» WarCraft 3 / Помогите с созданием карты!
» WarCraft 3 / Не открывается варкрафт через редактор
» WarCraft 3 / Скил для героя
» WarCraft 3 / Модель постройки здания
» WarCraft 3 / Порядок инициализации
» WarCraft 3 / Ландшафт
» WarCraft 3 / Перестали работать триггеры
» WarCraft 3 / Синхронизация
» WarCraft 3 / Как избавиться от утечки?
» WarCraft 3 / Как избавиться от утечки?
» WarCraft 3 / Альтернативная форма юнита!
» WarCraft 3 / По поводу зданий...
» WarCraft 3 / Изменить название карты
» WarCraft 3 / Импорт текста
» WarCraft 3 / Заклинание невидимости
» WarCraft 3 / Модель не отображается в карте.
» WarCraft 3 / Выбор сложности для 1 игрока
» WarCraft 3 / Замедление сбивает замедление.
» WarCraft 3 / Какой патч лучше?
» WarCraft 3 / Проблема с переводом карты
» WarCraft 3 / Перевод карты